package edu.upc.negocio;

import java.util.ArrayList;

import edu.upc.entidades.Modulo;
import edu.upc.entidades.Rol;
import edu.upc.entidades.Usuario;

public class AdmRoles {

private ArrayList<Rol> roles;
	
	public AdmRoles(){
        // Creacion de la coleccion de modulos
		roles = new ArrayList<Rol>();
    }
	
	public void registrarRol(Rol nuevorol) {
		if (noExisteRol(nuevorol.getIdRol())){
            roles.add(nuevorol);
        }
    }
	
	public String actualizarRol(String idRol, String nombre, String descripcion,AdmModulos listamod) {
		if (buscarRol(idRol)!= null) {
			Rol nuevorol = new Rol(idRol, nombre, descripcion,listamod);
			eliminarRol(idRol , new UsuarioNegocio());
            roles.add(nuevorol);
            return "Actualizado";
        }
        
        return "No existe modulo";
    }

    public Rol buscarRol(String id) {
        for( Rol mod  : roles)
            if(mod.getIdRol().equals(id)){
            	System.out.println("encontro rol");
            	return mod;
            }
        return null;
    }

    public int getTotalRol() {
    	for( Rol mod  : roles){
            System.out.println("-Nombre  :"+ mod.getNombre() + " -Codigo  :" + mod.getIdRol());
            }
        return roles.size();
    }

    private boolean noExisteRol(String id_mod) {
        return buscarRol(id_mod) == null;
    }

    public void eliminarRol(String id_rol , UsuarioNegocio usu) {
    	if(usu.buscarRolEnUsuario(id_rol)!=true){
    		Rol mod = buscarRol(id_rol);
            if (mod != null)
                roles.remove(mod);
            else
            	System.out.println("No existe");
    	}
    	else
    	System.out.println("Rol asociado a usuario no puede ser eliminado");
    }
 

}
